package chapter07

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test04_List
 * Package: chapter07
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-06-27
 *          Time: 19:45
 */

object Test04_List {
  def main(args: Array[String]): Unit = {

    //创建一个List 是一个抽象类 不能new 使用伴生对象的 apply方法创建
    val list = List(12, 23, 34, 45, 56, 67)
    println(list) //List(12, 23, 34, 45, 56, 67)

    //访问元素 可以获取到指定位置的元素
    println(list(1)) //23
    //但是不能修改
    //list(2) = 100

    //遍历
    list.foreach(println)
    println("---------------------------")

    //添加元素 加在开头 一样. 可以省略
    val list1 = list.+:(10)
    //加在末尾
    val list2 = list1.:+(20)
    list2.foreach(println)

    //双冒号 把51加在了最前面
    val list3 = list2.::(51)
    println(list3)
    //更多是利用双冒号 创建一个新列表
    val list5 = Nil.::(12)
    println(list5)
    //也可以省略点号
    val list6 = 32::Nil
    val list7 = 12::23::89::23::Nil
    //按熟悉创建的数组
    println(list7)

    //列表合并
    val list8 = list6 :: list7
    println(list8) //List(List(32), 12, 23, 89, 23)
    //三冒号合并 先拆开 在 合并 叫扁平化
    val list9 = list6:::list7
    println(list9) //List(32, 12, 23, 89, 23)
    //++ 效果和 三冒号一样
    val list10 = list6 ++ list7
    println(list10)

  }
}
